/**
 * 
 */
package br.com.mkmts.model.pedidos;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;

import br.com.mkmts.dto.PercentDescontoEnum;

/**
 * @author christopher.rozario
 * 
 */
@Entity
@Table(name = "tPedidos")
public class PedidoEntity implements Serializable {

	private static final long serialVersionUID = 1534040142023718018L;

	@Id
	@Column(name = "IDPedido", nullable=false, unique=true)
	private Long codPedido;
	
	@Column(name = "dtPedido")
	private Date dtPedido;
	
	@Column(name = "vlrTotalPago")
	private BigDecimal valorTotalPago;
	
	@Column(name = "vlrTotalEmProdutos")
	private BigDecimal valorTotalEmProdutos;
	
	@Enumerated(EnumType.ORDINAL)
	@Column(name = "percDesconto")
	private PercentDescontoEnum percDesconto;
	
	@Column(name = "vlrTotalComDesconto")
	private BigDecimal vlrTotalComDesconto;
	
	@Column(name = "totalPontosPedido")
	private Integer pontosTotalPedido;
	
	@Column(name = "lucroPedido")
	private BigDecimal lucroTotal;
	
	@Column(name = "vlrFrete")
	private BigDecimal valorFrete;

	@ManyToMany(fetch = FetchType.LAZY, cascade=CascadeType.ALL)
	@JoinTable(name = "tPedidos_join_tHistProdsComprados", joinColumns = { @JoinColumn(name = "IDPedido") }, inverseJoinColumns = { @JoinColumn(name = "IDProduto") })
	private List<ProdutoCompradoHistoricoEntity> listaProdutosComprados;

	public Long getCodPedido() {
		return codPedido;
	}

	public void setCodPedido(Long codPedido) {
		this.codPedido = codPedido;
	}

	public Date getDtPedido() {
		return dtPedido;
	}

	public void setDtPedido(Date dtPedido) {
		this.dtPedido = dtPedido;
	}

	public BigDecimal getValorTotalPago() {
		return valorTotalPago;
	}

	public void setValorTotalPago(BigDecimal valorTotalPago) {
		this.valorTotalPago = valorTotalPago;
	}

	public BigDecimal getValorTotalEmProdutos() {
		return valorTotalEmProdutos;
	}

	public void setValorTotalEmProdutos(BigDecimal valorTotalEmProdutos) {
		this.valorTotalEmProdutos = valorTotalEmProdutos;
	}

	public PercentDescontoEnum getPercDesconto() {
		return percDesconto;
	}

	public void setPercDesconto(PercentDescontoEnum percDesconto) {
		this.percDesconto = percDesconto;
	}

	public BigDecimal getVlrTotalComDesconto() {
		return vlrTotalComDesconto;
	}

	public void setVlrTotalComDesconto(BigDecimal vlrTotalComDesconto) {
		this.vlrTotalComDesconto = vlrTotalComDesconto;
	}

	public Integer getPontosTotalPedido() {
		return pontosTotalPedido;
	}

	public void setPontosTotalPedido(Integer pontosTotalPedido) {
		this.pontosTotalPedido = pontosTotalPedido;
	}

	public BigDecimal getLucroTotal() {
		return lucroTotal;
	}

	public void setLucroTotal(BigDecimal lucroTotal) {
		this.lucroTotal = lucroTotal;
	}

	public BigDecimal getValorFrete() {
		return valorFrete;
	}

	public void setValorFrete(BigDecimal valorFrete) {
		this.valorFrete = valorFrete;
	}

	public List<ProdutoCompradoHistoricoEntity> getListaProdutosComprados() {
		return listaProdutosComprados;
	}

	public void setListaProdutosComprados(List<ProdutoCompradoHistoricoEntity> listaProdutosComprados) {
		this.listaProdutosComprados = listaProdutosComprados;
	}
	
}
